Hourly Separator + Opening LineThis indicator shows the vertical and horizontal opening lines for the hourly timeframe.
Also has options to choose a different opening time:
- 1 Hour
- 30 Min
- 15 Min
- 10 Min
- 5 Min
[i]price
Kalman PSaR [BackQuant]Kalman PSaR
Overview and Innovation
The Kalman PSaR combines the well-known Parabolic SAR (PSaR) with the advanced smoothing capabilities of the Kalman Filter . This innovative tool aims to enhance the traditional PSaR by integrating Kalman filtering, which reduces noise and improves trend detection. The Kalman PSaR adapts dynamically to price movements, making it a highly effective indicator for spotting trend shifts while minimizing the impact of false signals caused by market volatility.
Please Find the Basic Kalman Here:
Kalman Filter Dynamics
The Kalman Filter is a powerful algorithm for estimating the true value of a system amidst noisy data. In the Kalman PSaR, this filter is applied to the high, low, and closing prices, resulting in a smoother and more accurate representation of price action. The filter’s parameters—process noise and measurement noise—are customizable, allowing traders to fine-tune the sensitivity of the indicator to market conditions. By reducing the impact of noise, the Kalman-filtered PSaR offers clearer signals for identifying trend reversals and continuations.
Enhanced PSaR Calculation
The traditional Parabolic SAR is a popular trend-following indicator that highlights potential entry and exit points based on price acceleration. In the Kalman PSaR, this calculation is enhanced by the Kalman-filtered prices, providing a smoother and more reliable signal. The indicator continuously updates based on the acceleration factor and max step values, while the Kalman filter ensures that sudden price spikes or market noise do not trigger false signals.
Min Step and Max Step: These settings control the sensitivity of the PSaR. The Min Step sets the initial acceleration factor, while the Max Step limits how fast the PSaR adapts to price changes, helping traders fine-tune the indicator’s responsiveness.
Optional Smoothing Techniques To further enhance the signal clarity, the Kalman PSaR includes an optional smoothing feature. Traders can choose from various smoothing methods, such as SMA, Hull, EMA, WMA, TEMA, and more, to reduce short-term fluctuations and emphasize the underlying trend. The smoothing period is customizable, allowing traders to adjust the indicator’s behavior according to their preferred trading style and timeframe.
Color-Coded Candle Painting The Kalman PSaR features color-coded candles that change according to the trend direction. When the price is above the PSaR, candles are painted green to indicate a long trend, and when the price is below the PSaR, candles are painted red to signal a short trend. This visual representation makes it easy to interpret market sentiment at a glance, improving decision-making speed during fast-moving markets.
Key Features and Customization
Kalman Filter Customization: The process noise and measurement noise parameters allow traders to adjust how aggressively the filter adapts to price changes, making it suitable for both volatile and stable markets.
Smoothing Options: A variety of moving average types, such as SMA, Hull, EMA, and more, can be applied to smooth the PSaR values, ensuring that the signal remains clear even in choppy markets.
Dynamic Trend Detection: The Kalman PSaR dynamically updates based on price movements, helping traders spot trend reversals early while filtering out false signals caused by short-term volatility.
Bar Coloring and PSaR Plotting: Traders can choose to color candles based on trend direction or plot the PSaR directly on the chart for additional visual clarity.
Practical Applications
Trend-Following Strategies: The Kalman PSaR excels in trend-following strategies by providing timely signals of trend changes. The dynamic nature of the indicator allows traders to capture significant price movements while avoiding market noise.
Reversal Identification: The indicator’s ability to filter out noise and provide smoother signals makes it ideal for identifying reversals in volatile markets.
Risk Management: By plotting clear stop levels based on the PSaR, traders can use this indicator to effectively manage risk, placing stop-loss orders at key points based on the trend direction.
Conclusion
The Kalman PSaR is a fusion of the classic Parabolic SAR and the Kalman filter, offering enhanced trend detection with reduced noise. Its customizable filtering and smoothing options, combined with dynamic trend-following capabilities, make it a versatile tool for traders seeking to improve their timing and signal accuracy. The adaptive nature of the Kalman filter, combined with the robust PSaR logic, helps traders stay on the right side of the market and manage risk more effectively.
Revenue GridDescription:
The Revenue Grid indicator helps traders and investors visualize a stock’s valuation by plotting horizontal lines based on its price-to-sales (P/S) ratio. This tool displays how the stock price compares to multiples of its total revenue per share, giving a clear perspective on valuation benchmarks.
Fundamental Concept:
The price-to-sales ratio compares a company’s stock price to its revenue per share. It’s used to evaluate whether a stock is overvalued or undervalued based on its revenue.
This indicator offers a unique way to view this ratio by applying Fibonacci multiples to the revenue per share. It plots lines at these multiples to show how the stock price measures up against different valuation levels.
How It Works:
Data Inputs:
Total Revenue (TR): The company’s revenue over the past twelve months.
Total Shares Outstanding (TSO): The total number of shares in circulation.
Calculation:
Calculates the revenue per share (TR/TSO).
Plots lines at fixed Fibonacci multiples (e.g., 1x, 2x, 3x, 5x, 8x, 13x) of the revenue per share value.
How to Use:
1. Add the "Revenue Grid" indicator to your chart by searching for it in the indicator library and applying it.
2. Observe the lines plotted on the chart. If these lines are trending upwards, it indicates that the revenue is increasing.
3. Analyze how historical prices trend relative to these lines. Look for periods where the stock price supports around specific multiples, you can easily get a sense of overvaluation or undervaluation in certain periods.
Use this information to guide further analysis and investment decisions.
Benefits:
1. Clear Valuation View: Easily see how the company’s revenue translates into stock price levels.
2. Investment Insight: Identify if the stock price is lagging behind revenue growth, which might signal a buying opportunity.
3. Historical Context: Understand how the market has historically valued the company and assess the current valuation.
Do let me know your feedbacks in comments. Happy Investing :)
DEMA Adaptive DMI [BackQuant]DEMA Adaptive DMI
PLEASE Read the following, knowing what an indicator does at its core before adding it into a system is pivotal. The core concepts can allow you to include it in a logical and sound manner.
Conceptual Foundation and Innovation
The DEMA Adaptive DMI blends the Double Exponential Moving Average (DEMA) with the Directional Movement Index (DMI) to offer a unique approach to trend-following. By applying DEMA to the high and low prices, this indicator refines the traditional DMI calculation, enhancing its responsiveness to price changes. This results in a more adaptive and timely measure of market trends and momentum, providing traders with a more refined tool for capturing directional movements in the market.
Technical Composition and Calculation
At its core, the DEMA Adaptive DMI calculates the DEMA for both the high and low prices over a user-defined period. This dual application of DEMA serves to smooth out price fluctuations while retaining sensitivity to market movements. The DMI is then derived from the changes in these DEMA values, producing a set of plus and minus directional indicators that reflect the prevailing trend. Additionally, an Average Directional Index (ADX) is computed to measure the strength of the trend, with the entire process being dynamically adjusted based on the DEMA calculations.
DEMA Application:
The DEMA is applied to both high and low prices to reduce lag and provide a smoother representation of price action.
Directional Movement Calculation: The DMI is calculated using the smoothed price changes, resulting in plus and minus indicators that accurately reflect market trends.
ADX Calculation:
The ADX is computed to quantify the strength of the trend, offering traders insight into whether the market is trending strongly or is in a phase of consolidation.
Features and User Inputs The DEMA Adaptive DMI offers a range of customizable options to suit different trading styles and market conditions:
DEMA Calculation Period: Users can set the period for the DEMA calculation, allowing for adjustments based on the desired sensitivity.
DMI Length: The length of the DMI calculation can be adjusted, providing flexibility in how trends are measured.
ADX Smoothing Period: The smoothing period for the ADX can be customized to fine-tune the trend strength measurement.
Divergence Detection: Optional divergence detection features allow traders to spot potential reversals based on the DMI and price action.
Visualization options include static high and low levels to mark extreme DMI thresholds, the ability to color bars according to trend direction, and background hues to highlight overbought and oversold conditions.
Practical Applications
The DEMA Adaptive DMI is particularly effective in markets where trend strength and direction are crucial for successful trading. Traders can leverage this indicator to:
Identify Trend Reversals:
Detect potential trend reversals by monitoring the DMI and ADX in conjunction with divergence signals.
Trend Confirmation:
Use the DEMA-based DMI to confirm the strength and direction of a trend, aiding in the timing of entries and exits.
Strategic Positioning:
The indicator's responsiveness allows traders to position themselves effectively in fast-moving markets, reducing the risk of late entries or exits.
Advantages and Strategic Value
By integrating the DEMA with the DMI, this indicator provides a more adaptive and timely measure of market trends. The reduced lag from the DEMA ensures that traders receive signals that are closely aligned with current market conditions, while the dynamic DMI calculation offers a more accurate representation of trend direction and strength. This makes the DEMA Adaptive DMI a valuable tool for traders looking to enhance their trend-following strategies with a focus on precision and adaptability.
Summary and Usage Tips
The DEMA Adaptive DMI is a sophisticated trend-following indicator that combines the benefits of DEMA and DMI into a single, powerful tool. Traders are encouraged to incorporate this indicator into their trading systems for a more nuanced and responsive approach to trend detection and confirmation. Whether used for identifying trend reversals, confirming trend strength, or strategically positioning in the market, the DEMA Adaptive DMI offers a versatile and reliable solution for trend-following strategies.
Thus following all of the key points here are some sample backtests on the 1D Chart
Disclaimer: Backtests are based off past results, and are not indicative of the future.
INDEX:BTCUSD
INDEX:ETHUSD
BINANCE:SOLUSD
Opening Price LinesThis script allows the user to set 16 custom opening time price lines and labels, as well as 4 vertical lines to delineate times of the day.
Opening price is crucial for PO3 and OHLC/OLHC market strategies. If you are bearish, you want to get in above the opening price of a candle; conversely if you are bullish you want to enter below the opening price of a candle.
This indicator will aid in identifying time clusters in price as well as identifying important times for whatever strategy the user employs.
*Many thanks to TFO for the framework from which this indicator was created.*
Multi-Timeframe EMA Distance & % Change TableDescription of Multi-Timeframe EMA Distance & % Change Table
The Multi-Timeframe EMA Distance & % Change Table indicator is designed to display the distance and percentage change between the current price and the Exponential Moving Averages (EMAs) on multiple timeframes. It creates a table to show these values, with customizable options for decimal precision .
Key Features:
Inputs:
- Timeframes (tf1, tf2, tf3, tf4): User-defined timeframes for EMA calculations (e.g., 1 minute, 15 minutes, daily, etc.).
- EMA Levels (emaLevel, emaLevel2, emaLevel3): User-defined periods for three different EMAs.
EMA Calculations:
- Computes EMAs for the specified levels (50, 100, 200) on each of the user-selected timeframes.
Plotting:
- Plots the EMAs on the chart with distinct colors: Orange, Teal, and Green for different EMAs.
Display Options:
- Checkbox (displayAsPercentage): Allows the user to toggle between displaying distances or percentage changes.
- Decimal Precision:
- decimalPlacesDistance: Specifies the number of decimal places for rounded distance values.
- decimalPlacesPercentage: Specifies the number of decimal places for rounded percentage values.
Table Creation:
- Location: Table is placed in the top-right corner of the chart.
- Headers: Includes columns for each timeframe and EMA distance/percentage.
Distance and Percentage Calculations:
- Distances: Calculated as the difference between the current price and the EMA values for each timeframe.
- Percentages: Calculated as the distance divided by the EMA value, converted to a percentage.
Decimal Rounding:
- Custom Rounding Function: Ensures that distance and percentage values are displayed with the user-specified number of decimal places.
Color Coding:
- Distance Values: Colored green if positive, red if negative.
- Table Entries: Display either the rounded distance or percentage, based on user selection.
Table Update:
- The table is dynamically updated with either distance or percentage values based on the user's choice and rounded to the specified number of decimal places.
This indicator provides a comprehensive overview of EMA distances and percentage changes across multiple timeframes, with detailed control over the precision of the displayed values.
MarketcapDefinition
This indicator was designed to reveal the relationship between the price of the product and its market value. The red average marketcap line that appears on the chart is the line. And the further up this line moves from the chart, the more it shows that there is a mismatch between the price and the market value. So what does this incompatibility mean? There are purchases of the product, but since the supply of the product into circulation is constantly increasing, it means that these purchases are not reflected in the price, which means there is inflation.
The main purpose of our indicator is to calculate inflation of the product. It is the understanding of whether or not the amount of supply put into circulation in response to the investment is reflected in the product price while increasing the market value.
Attention: Transactions are made based on the data received via CRYPTOCAP. In cases where this data cannot be received, the "UNSUPPORTED SOURCE" warning is displayed. You can use Settings to change the source from which data can be retrieved.
Labels
The labels are explained one by one below.
MARKETCAP: Shows the current market value.
ATH MARKETCAP: Shows the highest market value of all time.
MARKETCAP RATIO: It gives the ratio between the highest level and the lowest level of the market value.
PRICE RATIO: Gives the ratio between the highest level and the lowest level of the crypto price.
ALL INFLATION PERCENT: It refers to the percentage of all inflation that has developed so far. It is also the percentage difference between market value and price.
MONTHLY INFLATION PERCENT: It refers to the monthly estimated inflation percentage.
CIRCULATING SUPPLY: It refers to the estimated circulation supply of the product.
Best Use
It should bring to mind the idea that the further the indicator curve moves away from the price, the higher the inflation will be. In order for a product to reach its previous peak, its market value must normally increase by the "MARKETCAP RATIO" value and the "PRICE RATIO" value. This should make you think that this product needs more investment to reach its former peak. And it is necessary to be careful when purchasing such products.
Disclaimer
This indicator is for informational purposes only and should be used for educational purposes only. You may lose money if you rely on this to trade without additional information. Use at your own risk.
Version
v1.0
Volume Spread Analysis [TANHEF]Volume Spread Analysis: Understanding Market Intentions through the Interpretation of Volume and Price Movements.
█ Simple Explanation:
The Volume Spread Analysis (VSA) indicator is a comprehensive tool that helps traders identify key market patterns and trends based on volume and spread data. This indicator highlights significant VSA patterns and provides insights into market behavior through color-coded volume/spread bars and identification of bars indicating strength, weakness, and neutrality between buyers and sellers. It also includes powerful volume and spread forecasting capabilities.
█ Laws of Volume Spread Analysis (VSA):
The origin of VSA begins with Richard Wyckoff, a pivotal figure in its development. Wyckoff made significant contributions to trading theory, including the formulation of three basic laws:
The Law of Supply and Demand: This fundamental law states that supply and demand balance each other over time. High demand and low supply lead to rising prices until demand falls to a level where supply can meet it. Conversely, low demand and high supply cause prices to fall until demand increases enough to absorb the excess supply.
The Law of Cause and Effect: This law assumes that a 'cause' will result in an 'effect' proportional to the 'cause'. A strong 'cause' will lead to a strong trend (effect), while a weak 'cause' will lead to a weak trend.
The Law of Effort vs. Result: This law asserts that the result should reflect the effort exerted. In trading terms, a large volume should result in a significant price move (spread). If the spread is small, the volume should also be small. Any deviation from this pattern is considered an anomaly.
█ Volume and Spread Analysis Bars:
Display: Volume and/or spread bars that consist of color coded levels. If both of these are displayed, the number of spread bars can be limited for visual appeal and understanding, with the spread bars scaled to match the volume bars. While automatic calculation of the number of visual bars for auto scaling is possible, it is avoided to prevent the indicator from reloading whenever the number of visual price bars on the chart is adjusted, ensuring uninterrupted analysis. A displayable table (Legend) of bar colors and levels can give context and clarify to each volume/spread bar.
Calculation: Levels are calculated using multipliers applied to moving averages to represent key levels based on historical data: low, normal, high, ultra. This method smooths out short-term fluctuations and focuses on longer-term trends.
Low Level: Indicates reduced volatility and market interest.
Normal Level: Reflects typical market activity and volatility.
High Level: Indicates increased activity and volatility.
Ultra Level: Identifies extreme levels of activity and volatility.
This illustrates the appearance of Volume and Spread bars when scaled and plotted together:
█ Forecasting Capabilities:
Display: Forecasted volume and spread levels using predictive models.
Calculation: Volume and Spread prediction calculations differ as volume is linear and spread is non-linear.
Volume Forecast (Linear Forecasting): Predicts future volume based on current volume rate and bar time till close.
Spread Forecast (Non-Linear Dynamic Forecasting): Predicts future spread using a dynamic multiplier, less near midpoint (consolidation) and more near low or high (trending), reflecting non-linear expansion.
Moving Averages: In forecasting, moving averages utilize forecasted levels instead of actual levels to ensure the correct level is forecasted (low, normal, high, or ultra).
The following compares forecasted volume with actual resulting volume, highlighting the power of early identifying increased volume through forecasted levels:
█ VSA Patterns:
Criteria and descriptions for each VSA pattern are available as tooltips beside them within the indicator’s settings. These tooltips provide explanations of potential developments based on the volume and spread data.
Signs of Strength (🟢): Patterns indicating strong buying pressure and potential market upturns.
Down Thrust
Selling Climax
No Effort → Bearish Result
Bearish Effort → No Result
Inverse Down Thrust
Failed Selling Climax
Bull Outside Reversal
End of Falling Market (Bag Holder)
Pseudo Down Thrust
No Supply
Signs of Weakness (🔴): Patterns indicating strong selling pressure and potential market downturns.
Up Thrust
Buying Climax
No Effort → Bullish Result
Bullish Effort → No Result
Inverse Up Thrust
Failed Buying Climax
Bear Outside Reversal
End of Rising Market (Bag Seller)
Pseudo Up Thrust
No Demand
Neutral Patterns (🔵): Patterns indicating market indecision and potential for continuation or reversal.
Quiet Doji
Balanced Doji
Strong Doji
Quiet Spinning Top
Balanced Spinning Top
Strong Spinning Top
Quiet High Wave
Balanced High Wave
Strong High Wave
Consolidation
Bar Patterns (🟡): Common candlestick patterns that offer insights into market sentiment. These are required in some VSA patterns and can also be displayed independently.
Bull Pin Bar
Bear Pin Bar
Doji
Spinning Top
High Wave
Consolidation
This demonstrates the acronym and descriptive options for displaying bar patterns, with the ability to hover over text to reveal the descriptive text along with what type of pattern:
█ Alerts:
VSA Pattern Alerts: Notifications for identified VSA patterns at bar close.
Volume and Spread Alerts: Alerts for confirmed and forecasted volume/spread levels (Low, High, Ultra).
Forecasted Volume and Spread Alerts: Alerts for forecasted volume/spread levels (High, Ultra) include a minimum percent time elapsed input to reduce false early signals by ensuring sufficient bar time has passed.
█ Inputs and Settings:
Display Volume and/or Spread: Choose between displaying volume bars, spread bars, or both with different lookback periods.
Indicator Bar Color: Select color schemes for bars (Normal, Detail, Levels).
Indicator Moving Average Color: Select schemes for bars (Fill, Lines, None).
Price Bar Colors: Options to color price bars based on VSA patterns and volume levels.
Legend: Display a table of bar colors and levels for context and clarity of volume/spread bars.
Forecast: Configure forecast display and prediction details for volume and spread.
Average Multipliers: Define multipliers for different levels (Low, High, Ultra) to refine the analysis.
Moving Average: Set volume and spread moving average settings.
VSA: Select the VSA patterns to be calculated and displayed (Strength, Weakness, Neutral).
Bar Patterns: Criteria for bar patterns used in VSA (Doji, Bull Pin Bar, Bear Pin Bar, Spinning Top, Consolidation, High Wave).
Colors: Set exact colors used for indicator bars, indicator moving averages, and price bars.
More Display Options: Specify how VSA pattern text is displayed (Acronym, Descriptive), positioning, and sizes.
Alerts: Configure alerts for VSA patterns, volume, and spread levels, including forecasted levels.
█ Usage:
The Volume Spread Analysis indicator is a helpful tool for leveraging volume spread analysis to make informed trading decisions. It offers comprehensive visual and textual cues on the chart, making it easier to identify market conditions, potential reversals, and continuations. Whether analyzing historical data or forecasting future trends, this indicator provides insights into the underlying factors driving market movements.
VolumeSpreadAnalysisLibrary "VolumeSpreadAnalysis"
A library for Volume Spread Analysis (VSA).
spread(_barIndex)
Calculates the spread of a bar.
Parameters:
_barIndex (int) : (int) The index of the bar.
Returns: (float) The spread of the bar.
volume(_barIndex)
Retrieves the volume of a bar.
Parameters:
_barIndex (int) : (int) The index of the bar.
Returns: (float) The volume of the bar.
body(_barIndex)
Calculates the body of a bar.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (float) The body size of the bar.
wickUpper(_barIndex)
Calculates the upper wick of a bar (upper shadow).
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (float) The upper wick size of the bar.
wickLower(_barIndex)
Calculates the lower wick of a bar (lower shadow).
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (float) The lower wick size of the bar.
calcForecastedSMA(_source, _length, _forecastedLevel)
Calculates the forecasted Simple Moving Average (SMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the SMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted SMA value.
calcForecastedEMA(_source, _length, _forecastedLevel)
Calculates the forecasted Exponential Moving Average (EMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the EMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted EMA value.
calcForecastedRMA(_source, _length, _forecastedLevel)
Calculates the forecasted Relative Moving Average (RMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the RMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted RMA value.
calcForecastedWMA(_source, _length, _forecastedLevel)
Calculates the forecasted Weighted Moving Average (WMA).
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the WMA.
_forecastedLevel (float) : (float) The forecasted level to include in the calculation.
Returns: (float) The forecasted WMA value.
calcElapsedTimePercent()
Calculates the elapsed time percent of the current bar.
Returns: (float) The elapsed time percent.
calcForecastedSpread(multiplierAtMidpoints, multiplierAtPeaks)
Calculates the forecasted spread using elapsed time and dynamic multipliers, handling spread's non-linear nature.
Parameters:
multiplierAtMidpoints (float) : (float) The multiplier value at midpoints.
multiplierAtPeaks (float) : (float) The multiplier value at peaks.
Returns: (float) The forecasted spread value.
calcForecastedVolume()
Calculates the forecasted volume using elapsed time, satisfying volume's linear nature.
Returns: (float) The forecasted volume value.
calcForecastedMA(_source, _length, _forecastedSource, _type)
Calculates the forecasted Moving Average (MA) based on the specified type.
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the MA.
_forecastedSource (float) : (float) The forecasted level to include in the calculation.
_type (simple string) : (string) The type of the MA ("SMA", "EMA", "SMMA (RMA)", "WMA").
Returns: (float) The forecasted MA value.
calcMA(_source, _length, _type)
Calculates the Moving Average (MA) based on the specified type.
Parameters:
_source (float) : (series float) Source data for calculation.
_length (simple int) : (int) The length of the MA.
_type (simple string) : (string) The type of the MA ("SMA", "EMA", "SMMA (RMA)", "WMA").
Returns: (float) The MA value.
bullBar(_barIndex)
Determines if the bar is bullish.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if the bar is bullish, otherwise false.
bearBar(_barIndex)
Determines if the bar is bearish.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if the bar is bearish, otherwise false.
breakout(_barIndex)
Determines if there is a breakout above the previous bar.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if there is a breakout, otherwise false.
breakdown(_barIndex)
Determines if there is a breakdown below the previous bar.
Parameters:
_barIndex (simple int) : (int) The index of the bar.
Returns: (bool) True if there is a breakdown, otherwise false.
rejectionWickUpper(_rejectionWick)
Determines if the upper wick is a rejection wick.
Parameters:
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if the upper wick is a rejection wick, otherwise false.
rejectionWickLower(_rejectionWick)
Determines if the lower wick is a rejection wick.
Parameters:
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if the lower wick is a rejection wick, otherwise false.
setupDataVolume(_data, _mult_Low, _mult_High, _mult_Ultra, _maLengthVolume, _maTypeVolume)
Sets up data for volume levels.
Parameters:
_data (map) : (map) The map to store the levels.
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthVolume (simple int) : (int) The length for MA.
_maTypeVolume (simple string) : (string) The type for MA.
Returns: (void) Nothing.
setupDataSpread(_data, _mult_Low, _mult_High, _mult_Ultra, _maLengthSpread, _maTypeSpread)
Sets up data for spread levels.
Parameters:
_data (map) : (map) The map to store the levels.
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthSpread (simple int) : (int) The length for MA.
_maTypeSpread (simple string) : (string) The type for MA.
Returns: (void) Nothing.
setupDataForecastVolume(_dataForecast, _mult_Low, _mult_High, _mult_Ultra, _maLengthVolume, _predictedLevelVolume, _maTypeVolume)
Sets up data for volume and spread levels for forecast.
Parameters:
_dataForecast (map)
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthVolume (simple int) : (int) The length for MA.
_predictedLevelVolume (float) : (float) The predicted level for MA.
_maTypeVolume (simple string) : (string) The type for MA.
Returns: (void) Nothing.
setupDataForecastSpread(_dataForecast, _mult_Low, _mult_High, _mult_Ultra, _maLengthSpread, _predictedLevelSpread, _maTypeSpread)
Sets up data for spread levels for forecast.
Parameters:
_dataForecast (map)
_mult_Low (simple float) : (float) The multiplier for low level.
_mult_High (simple float) : (float) The multiplier for high level.
_mult_Ultra (simple float) : (float) The multiplier for ultra level.
_maLengthSpread (simple int) : (int) The length for MA.
_predictedLevelSpread (float) : (float) The predicted level for MA.
_maTypeSpread (simple string) : (string) The type for MA.
Returns: (void) Nothing.
isVolumeLow(_data, _barIndex)
Determines if the volume is low.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is low, otherwise false.
isVolumeNormal(_data, _barIndex)
Determines if the volume is normal.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is normal, otherwise false.
isVolumeHigh(_data, _barIndex)
Determines if the volume is high.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is high, otherwise false.
isVolumeUltra(_data, _barIndex)
Determines if the volume is ultra.
Parameters:
_data (map) : (map) The data map with volume levels.
_barIndex (int)
Returns: (bool) True if the volume is ultra, otherwise false.
isSpreadLow(_data, _barIndex)
Determines if the spread is low.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is low, otherwise false.
isSpreadNormal(_data, _barIndex)
Determines if the spread is normal.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is normal, otherwise false.
isSpreadHigh(_data, _barIndex)
Determines if the spread is high.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is high, otherwise false.
isSpreadUltra(_data, _barIndex)
Determines if the spread is ultra.
Parameters:
_data (map) : (map) The data map with spread levels.
_barIndex (int)
Returns: (bool) True if the spread is ultra, otherwise false.
isVolumeText(_data)
Determines text string representing the volume area level.
Parameters:
_data (map) : (map) The data map with volume levels.
Returns: (string) Text string of Low, Normal, High, or Ultra.
isSpreadText(_data)
Determines text string representing the spread area level.
Parameters:
_data (map) : (map) The data map with spread levels.
Returns: (string) Text string of Low, Normal, High, or Ultra.
calcBarColor(_value, _level)
Calculates the color based level.
Parameters:
_value (float) : (float) The value to check.
_level (float) : (float) The value level for comparison.
Returns: (color) The color for the bar.
bullPinBar(_maxBodyPercent, _minWickPercent)
Determines if the bar is a bull pin bar.
Parameters:
_maxBodyPercent (simple float) : (float) The maximum body percentage.
_minWickPercent (simple float) : (float) The minimum wick percentage.
Returns: (bool) True if the bar is a bull pin bar, otherwise false.
bearPinBar(_maxBodyPercent, _minWickPercent)
Determines if the bar is a bear pin bar.
Parameters:
_maxBodyPercent (simple float) : (float) The maximum body percentage.
_minWickPercent (simple float) : (float) The minimum wick percentage.
Returns: (bool) True if the bar is a bear pin bar, otherwise false.
dojiBar(_maxBodyPercent)
Determines if the bar is a doji.
Parameters:
_maxBodyPercent (simple float) : (float) The maximum body percentage.
Returns: (bool) True if the bar is a doji, otherwise false.
spinningTopBar(_minWicksPercent, _emaLength)
Determines if the bar is a spinning top.
Parameters:
_minWicksPercent (simple float) : (float) The minimum wicks percentage.
_emaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if the bar is a spinning top, otherwise false.
highWaveBar(_minBodyPercent, _minWickPercent, _bars)
Determines if the bar is a high wave bar.
Parameters:
_minBodyPercent (simple float) : (float) The minimum body percentage.
_minWickPercent (simple float) : (float) The minimum wick percentage.
_bars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if the bar is a high wave bar, otherwise false.
consolidationBar(_data, _spread, _bars)
Determines if the bars are in consolidation.
Parameters:
_data (map) : (map) The data map with spread levels.
_spread (simple float) : (float) The spread percentage for comparison.
_bars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if the bars are in consolidation, otherwise false.
S_DownThrust(_data, _bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of strength (DownThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of strength (DownThrust), otherwise false.
S_SellingClimax(_data, _rejectionWick)
Determines if there is a sign of strength (Selling Climax).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if there is a sign of strength (Selling Climax), otherwise false.
S_NoEffortBearishResult()
Determines if there is a sign of strength (No Effort Bearish Result).
Returns: (bool) True if there is a sign of strength (No Effort Bearish Result), otherwise false.
S_BearishEffortNoResult()
Determines if there is a sign of strength (Bearish Effort No Result).
Returns: (bool) True if there is a sign of strength (Bearish Effort No Result), otherwise false.
S_InverseDownThrust(_data, _bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of strength (Inverse DownThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of strength (Inverse DownThrust), otherwise false.
S_FailedSellingClimax()
Determines if there is a sign of strength (Failed Selling Climax).
Returns: (bool) True if there is a sign of strength (Failed Selling Climax), otherwise false.
S_BullOutsideReversal(_data)
Determines if there is a sign of strength (Bull Outside Reversal).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of strength (Bull Outside Reversal), otherwise false.
S_EndOfFallingMarket(_data)
Determines if there is a sign of strength (End of Falling Market).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of strength (End of Falling Market), otherwise false.
S_PseudoDownThrust(_bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of strength (Pseudo DownThrust).
Parameters:
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of strength (Pseudo DownThrust), otherwise false.
S_NoSupply(_bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of strength (No Supply).
Parameters:
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of strength (No Supply), otherwise false.
W_UpThrust(_data, _bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of weakness (UpThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of weakness (UpThrust), otherwise false.
W_BuyingClimax(_data, _rejectionWick)
Determines if there is a sign of weakness (Buying Climax).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_rejectionWick (simple float) : (float) The rejection wick percentage.
Returns: (bool) True if there is a sign of weakness (Buying Climax), otherwise false.
W_NoEffortBullishResult()
Determines if there is a sign of weakness (No Effort Bullish Result).
Returns: (bool) True if there is a sign of weakness (No Effort Bullish Result), otherwise false.
W_BullishEffortNoResult()
Determines if there is a sign of weakness (Bullish Effort No Result).
Returns: (bool) True if there is a sign of weakness (Bullish Effort No Result), otherwise false.
W_InverseUpThrust(_data, _bullPinBarMaxBody, _bullPinBarMinWick)
Determines if there is a sign of weakness (Inverse UpThrust).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
_bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
Returns: (bool) True if there is a sign of weakness (Inverse UpThrust), otherwise false.
W_FailedBuyingClimax()
Determines if there is a sign of weakness (Failed Buying Climax).
Returns: (bool) True if there is a sign of weakness (Failed Buying Climax), otherwise false.
W_BearOutsideReversal(_data)
Determines if there is a sign of weakness (Bear Outside Reversal).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of weakness (Bear Outside Reversal), otherwise false.
W_EndOfRisingMarket(_data)
Determines if there is a sign of weakness (End of Rising Market).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
Returns: (bool) True if there is a sign of weakness (End of Rising Market), otherwise false.
W_PseudoUpThrust(_bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of weakness (Pseudo UpThrust).
Parameters:
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of weakness (Pseudo UpThrust), otherwise false.
W_NoDemand(_bearPinBarMaxBody, _bearPinBarMinWick)
Determines if there is a sign of weakness (No Demand).
Parameters:
_bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
_bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
Returns: (bool) True if there is a sign of weakness (No Demand), otherwise false.
N_QuietDoji(_dojiBarMaxBody)
Determines if there is a neutral signal (Quiet Doji).
Parameters:
_dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
Returns: (bool) True if there is a neutral signal (Quiet Doji), otherwise false.
N_BalancedDoji(_data, _dojiBarMaxBody)
Determines if there is a neutral signal (Balanced Doji).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
Returns: (bool) True if there is a neutral signal (Balanced Doji), otherwise false.
N_StrongDoji(_dojiBarMaxBody)
Determines if there is a neutral signal (Strong Doji).
Parameters:
_dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
Returns: (bool) True if there is a neutral signal (Strong Doji), otherwise false.
N_QuietSpinningTop(_spinningTopBarMinWicks, _spinningTopBarEmaLength)
Determines if there is a neutral signal (Quiet Spinning Top).
Parameters:
_spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
_spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if there is a neutral signal (Quiet Spinning Top), otherwise false.
N_BalancedSpinningTop(_data, _spinningTopBarMinWicks, _spinningTopBarEmaLength)
Determines if there is a neutral signal (Balanced Spinning Top).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
_spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if there is a neutral signal (Balanced Spinning Top), otherwise false.
N_StrongSpinningTop(_spinningTopBarMinWicks, _spinningTopBarEmaLength)
Determines if there is a neutral signal (Strong Spinning Top).
Parameters:
_spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
_spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
Returns: (bool) True if there is a neutral signal (Strong Spinning Top), otherwise false.
N_QuietHighWave(_highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars)
Determines if there is a neutral signal (Quiet High Wave).
Parameters:
_highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
_highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
_highWaveBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Quiet High Wave), otherwise false.
N_BalancedHighWave(_data, _highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars)
Determines if there is a neutral signal (Balanced High Wave).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
_highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
_highWaveBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Balanced High Wave), otherwise false.
N_StrongHighWave(_highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars)
Determines if there is a neutral signal (Strong High Wave).
Parameters:
_highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
_highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
_highWaveBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Strong High Wave), otherwise false.
N_Consolidation(_data, _consolidationBarSpread, _consolidationBarBars)
Determines if there is a neutral signal (Consolidation).
Parameters:
_data (map) : (map) The data map with volume and spread levels.
_consolidationBarSpread (simple float) : (float) The spread percentage for consolidation bar.
_consolidationBarBars (simple int) : (int) The number of bars for comparison.
Returns: (bool) True if there is a neutral signal (Consolidation), otherwise false.
Price Ratio Indicator [ChartPrime]The Price Ratio Indicator is a versatile tool designed to analyze the relationship between the price of an asset and its moving average. It helps traders identify overbought and oversold conditions in the market, as well as potential trend reversals.
◈ User Inputs:
MA Length: Specifies the length of the moving average used in the calculation.
MA Type Fast: Allows users to choose from various types of moving averages such as Exponential Moving Average (EMA), Simple Moving Average (SMA), Weighted Moving Average (WMA), Volume Weighted Moving Average (VWMA), Relative Moving Average (RMA), Double Exponential Moving Average (DEMA), Triple Exponential Moving Average (TEMA), Zero-Lag Exponential Moving Average (ZLEMA), and Hull Moving Average (HMA).
Upper Level and Lower Level: Define the threshold levels for identifying overbought and oversold conditions.
Signal Line Length: Determines the length of the signal line used for smoothing the indicator's values.
◈ Indicator Calculation:
The indicator calculates the ratio between the price of the asset and the selected moving average, subtracts 1 from the ratio, and then smooths the result using the chosen signal line length.
// 𝙄𝙉𝘿𝙄𝘾𝘼𝙏𝙊𝙍 𝘾𝘼𝙇𝘾𝙐𝙇𝘼𝙏𝙄𝙊𝙉𝙎
//@ Moving Average's Function
ma(src, ma_period, ma_type) =>
ma =
ma_type == 'EMA' ? ta.ema(src, ma_period) :
ma_type == 'SMA' ? ta.sma(src, ma_period) :
ma_type == 'WMA' ? ta.wma(src, ma_period) :
ma_type == 'VWMA' ? ta.vwma(src, ma_period) :
ma_type == 'RMA' ? ta.rma(src, ma_period) :
ma_type == 'DEMA' ? ta.ema(ta.ema(src, ma_period), ma_period) :
ma_type == 'TEMA' ? ta.ema(ta.ema(ta.ema(src, ma_period), ma_period), ma_period) :
ma_type == 'ZLEMA' ? ta.ema(src + src - src , ma_period) :
ma_type == 'HMA' ? ta.hma(src, ma_period)
: na
ma
//@ Smooth of Source
src = math.sum(source, 5)/5
//@ Ratio Price / MA's
p_ratio = src / ma(src, ma_period, ma_type) - 1
◈ Visualization:
The main plot displays the price ratio, with color gradients indicating the strength and direction of the ratio.
The bar color changes dynamically based on the ratio, providing a visual representation of market conditions.
Invisible Horizontal lines indicate the upper and lower threshold levels for overbought and oversold conditions.
A signal line, smoothed using the specified length, helps identify trends and potential reversal points.
High and low value regions are filled with color gradients, enhancing visualization of extreme price movements.
MA type HMA gives faster changes of the indicator (Each MA has its own specifics):
MA type TEMA:
◈ Additional Features:
A symbol displayed at the bottom right corner of the chart provides a quick visual reference to the current state of the indicator, with color intensity indicating the strength of the ratio.
Overall, the Price Ratio Indicator offers traders valuable insights into price dynamics and helps them make informed trading decisions based on the relationship between price and moving averages. Adjusting the input parameters allows for customization according to individual trading preferences and market conditions.
[BT] NedDavis Series: CPI Minus 5-Year Moving Average🟧 GENERAL
The script works on the Monthly Timeframe and has 2 main settings (explained in FEATURES ). It uses the US CPI data, reported by the Bureau of Labour Statistics.
🔹Functionality 1: The main idea is to plot the distance between the CPI line and the 5 year moving average of the CPI line. This technique in mathematics is called "deviation from the moving average". This technique is used to analyse how has CPI previously acted and can give clues at what it might do in the future. Economic historians use such analysis, together with specific period analysis to predict potential risks in the future (see an example of such analysis in HOW TO USE section. The mathematical technique is a simple subtraction between 2 points (CPI - 5yr SMA of CPI).
▶︎Interpretation for deviation from a moving average:
Positive Deviation: When the line is above its moving average, it indicates that the current value is higher than the average, suggesting potential strength or bullish sentiment.
Negative Deviation: Conversely, when the line falls below its moving average, it suggests weakness or bearish sentiment as the current value is lower than the average.
▶︎Applications:
Trend Identification: Deviations from moving averages can help identify trends, with sustained deviations indicating strong trends.
Reversal Signals: Significant deviations from moving averages may signal potential trend reversals, especially when combined with other technical indicators.
Volatility Measurement: Monitoring the magnitude of deviations can provide insights into market volatility and price movements.
Remember the indicator is applying this only for the US CPI - not the ticker you apply the indicator on!
🔹Functionality 2: It plots on a new pane below information about the Consumer Price Index. You can also find the information by plotting the ticker symbol USACPIALLMINMEI on TradingView, which is a Monthly economic data by the OECD for the CPI in the US. The only addition you would get from the indicator is the plot of the 5 year Simple Moving Average.
🔹What is the US Consumer Price Index?
Measures the change in the price of goods and services purchased by consumers;
Traders care about the CPI because consumer prices account for a majority of overall inflation. Inflation is important to currency valuation because rising prices lead the central bank to raise interest rates out of respect for their inflation containment mandate;
It is measured as the average price of various goods and services are sampled and then compared to the previous sampling.
Source: Bureau of Labor Statistics;
FEATURES OF INDICATOR
1) The US Consumer Price Index Minus the Five Year Moving Average of the same.
As shown on the picture above and explained in previous section. Here a more detailed view.
2) The actual US Consumer Price Index (Annual Rate of change) and the Five year average of the US Consumer Price Index. Explained above and shown below:
To activate 2) go into settings and toggle the check box.
HOW TO USE
It can be used for a fundamental analysis on the relationship between the stock market, the economy and the Feds decisions to hike or cut rates, whose main mandate is to control inflation over time.
I have created this indicator to show my analysis in this idea:
What does a First Fed Rate cut really mean?
CREDITS
I have seen such idea in the past posted by the institutional grade research of NedDavis and have recreated it for the TradingView platform, open-source for the community.
Price alert multi symbols (Miu)This indicator won't plot anything to the chart.
Please follow steps below to set your alarms based on multiple symbols' prices:
1) Add indicator to the chart
2) Go to settings
3) Check symbols you want to receive alerts (choose up to 8 different symbols)
4) Set price for each symbol
5) Once all is set go back to the chart and click on 3 dots to set alert in this indicator, rename your alert and confirm
6) You can remove indicator after alert is set and it'll keep working as expected
What does this indicator do?
This indicator will generate alerts based on following conditions:
- If price set is met for any symbol
Once condition is met it will send an alert with the following information:
- Symbol name (e.g: BTC, ETH, LTC)
- Price reached
This script requests current price for each symbol through request.security() built-in function. It also requests amount of digits (mintick) for each symbol to send alerts with correct value.
This script was developed to attend a demand from a comment in other published script.
Feel free to give feedbacks on comments section below.
Enjoy!
Price Based Z-Trend - Strategy [presentTrading]█ Introduction and How it is Different
Z-score: a statistical measurement of a score's relationship to the mean in a group of scores.
Simple but effective approach.
The "Price Based Z-Trend - Strategy " leverages the Z-score, a statistical measure that gauges the deviation of a price from its moving average, normalized against its standard deviation. This strategy stands out due to its simplicity and effectiveness, particularly in markets where price movements often revert to a mean. Unlike more complex systems that might rely on a multitude of indicators, the Z-Trend strategy focuses on clear, statistically significant price movements, making it ideal for traders who prefer a streamlined, data-driven approach.
BTCUSD 6h LS Performance
█ Strategy, How It Works: Detailed Explanation
🔶 Calculation of the Z-score
"Z-score is a statistical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean. If a Z-score is 0, it indicates that the data point's score is identical to the mean score. A Z-score of 1.0 would indicate a value that is one standard deviation from the mean. Z-scores may be positive or negative, with a positive value indicating the score is above the mean and a negative score indicating it is below the mean."
The Z-score is central to this strategy. It is calculated by taking the difference between the current price and the Exponential Moving Average (EMA) of the price over a user-defined length, then dividing this by the standard deviation of the price over the same length:
z = (x - μ) /σ
Local
🔶 Trading Signals
Trading signals are generated based on the Z-score crossing predefined thresholds:
- Long Entry: When the Z-score crosses above the positive threshold.
- Long Exit: When the Z-score falls below the negative threshold.
- Short Entry: When the Z-score falls below the negative threshold.
- Short Exit: When the Z-score rises above the positive threshold.
█ Trade Direction
The strategy allows users to select their preferred trading direction through an input option.
█ Usage
To use this strategy effectively, traders should first configure the Z-score thresholds according to their risk tolerance and market volatility. It's also crucial to adjust the length for the EMA and standard deviation calculations based on historical performance and the expected "noise" in price data.
The strategy is designed to be flexible, allowing traders to refine settings to better capture profitable opportunities in specific market conditions.
█ Default Settings
- Trade Direction: Both
- Standard Deviation Length: 100
- Average Length: 100
- Threshold for Z-score: 1.0
- Bar Color Indicator: Enabled
These settings offer a balanced starting point but can be customized to suit various trading styles and market environments. The strategy's parameters are designed to be adjusted as traders gain experience and refine their approach based on ongoing market analysis.
Z-score is a must-learn approach for every algorithmic trader.
Gaussian Price Filter [BackQuant]Gaussian Price Filter
Overview and History of the Gaussian Transformation
The Gaussian transformation, often associated with the Gaussian (normal) distribution, is a mathematical function characteristically prominent in statistics and probability theory. The bell-shaped curve of the Gaussian function, expressing the normal distribution, is ubiquitously employed in various scientific and engineering disciplines, including financial market analysis. This transformation's core utility in trading and economic forecasting is derived from its efficacy in smoothing data series and highlighting underlying trends, which are pivotal for making strategic trading decisions.
The Gaussian filter, specifically, is a type of data-smoothing algorithm that mitigates the random "noise" of market price data, thus enhancing the visibility of crucial trend changes and patterns. Historically, this concept was adapted from fields such as signal processing and image editing, where precise extraction of useful information from noisy environments is critical.
1. What is a Gaussian Transformation?
A Gaussian transformation involves the application of a Gaussian function to a set of data points. The function is applied as a filter in the context of trading algorithms to smooth time series data, which helps in identifying the intrinsic trends obscured by market volatility. The transformation is characterized by its parameter, sigma (σ), representing the standard deviation, which determines the width of the Gaussian bell curve. The breadth of this curve impacts the degree of smoothing: a wider curve (higher sigma value) results in more smoothing, beneficial for longer-term trend analysis.
2. Filtering Price with Gaussian Transformation and its Benefits
In the provided Script, the Gaussian transformation is utilized to filter price data. The filtering process involves convolving the price data with Gaussian weights, which are calculated based on the chosen length (the number of data points considered) and sigma. This convolution process smooths out short-term fluctuations and highlights longer-term movements, facilitating a clearer analysis of market trends.
Benefits:
Reduces noise: It filters out minor price movements and random fluctuations, which are often misleading.
Enhances trend recognition: By smoothing the data, it becomes easier to identify significant trends and reversals.
Improves decision-making: Traders can make more informed decisions by focusing on substantive, smoothed data rather than reacting to random noise.
3. Potential Limitations and Issues
While Gaussian filters are highly effective in smoothing data, they are not without limitations:
Lag introduction: Like all moving averages, the Gaussian filter introduces a lag between the actual price movements and the output signal, which can delay decision-making.
Feature blurring: Over-smoothing might obscure significant price movements, especially if a large sigma is used.
Parameter sensitivity: The choice of length and sigma significantly affects the output, requiring optimization and backtesting to determine the best settings for specific market conditions.
4. Extending Gaussian Filters to Other Indicators
The methodology used to filter price data with a Gaussian filter can similarly be applied to other technical indicators, such as RSI (Relative Strength Index) or MACD (Moving Average Convergence Divergence). By smoothing these indicators, traders can reduce false signals and enhance the reliability of the indicators' outputs, leading to potentially more accurate signals and better timing for entering or exiting trades.
5. Application in Trading
In trading, the Gaussian Price Filter can be strategically used to:
Spot trend reversals: Smoothed price data can more clearly indicate when a trend is starting to change, which is crucial for catching reversals early.
Define entry and exit points: The filtered data points can help in setting more precise entry and exit thresholds, minimizing the risk and maximizing the potential return.
Filter other data streams: Apply the Gaussian filter on volume or open interest data to identify significant changes in market dynamics.
6. Functionality of the Script
The script is designed to:
Calculate Gaussian weights (f_gaussianWeights function): Generates the weights used for the Gaussian kernel based on the provided length and sigma.
Apply the Gaussian filter (f_applyGaussianFilter function): Uses the weights to compute the smoothed price data.
Conditional Trend Detection and Coloring: Determines the trend direction based on the filtered price and colors the price bars on the chart to visually represent the trend.
7. Specific Actions of This Code
The Pine Script provided by BackQuant executes several specific actions:
Input Handling: It allows users to specify the source data (src), kernel length, and sigma directly in the chart settings.
Weight Calculation and Normalization: Computes the Gaussian weights and normalizes them to ensure their sum equals one, which maintains the original data scale.
Filter Application: Applies the normalized Gaussian kernel to the price data to produce a smoothed output.
Trend Identification and Visualization: Identifies whether the market is trending upwards or downwards based on the smoothed data and colors the bars green (up) or red (down) to indicate the trend direction.
BINANCE-BYBIT Cross Chart: Spot-Perpetual CorrelationName: "Binance-Bybit Cross Chart: Spot-Perpetual Correlation"
Category: Scalping, Trend Analysis
Timeframe: 1M, 5M, 30M, 1D (depending on the specific technique)
Technical analysis: This indicator facilitates a comparison between the price movements shown on the Binance spot chart and the Bybit perpetual chart, with the aim of discerning the correlation between the two charts and identifying the dominant market trends. It automatically generates the corresponding chart based on the ticker selected in the primary chart. When a Binance pair is selected in the main chart, the indicator replicates the Bybit perpetual chart for the same pair and timeframe, and vice versa, selecting the Bybit perpetual chart as the primary chart generates the Binance spot chart.
Suggested use: You can utilize this tool to conduct altcoin trading on Binance or Bybit, facilitating the comparison of price actions and real-time monitoring of trigger point sensitivity across both exchanges. We recommend prioritizing the Binance Spot chart in the main panel due to its typically longer historical data availability compared to Bybit.
The primary objective is to efficiently and automatically manage the following three aspects:
- Data history analysis for higher timeframes, leveraging the extensive historical data of the Binance spot market. Variations in indicators such as slow moving averages may arise due to differences in historical data between exchanges.
- Assessment of coin liquidity on both exchanges by observing candlestick consistency on smaller timeframes or the absence of gaps. In the crypto market, clean charts devoid of gaps indicate dominance and offer enhanced reliability.
- Identification of precise trigger point levels, including daily, previous day, or previous week highs and lows, which serve as sensitive areas for breakout or reversal operations.
All-Time High (ATH) and All-Time Low (ATL) levels may vary significantly across exchanges due to disparities in historical data series.
This tool empowers traders to make informed decisions by leveraging historical data, liquidity insights, and precise trigger point identification across Binance Spot and Bybit Perpetual market.
Configuration:
EMA length:
- EMA 1: Default 5, user configurable
- EMA 2: Default 10, user configurable
- EMA 3: Default 60, user configurable
- EMA 4: Default 223, user configurable
- Additional Average: Optional display of an additional average, such as a 20-period average.
Chart Elements:
- Session separator: Indicates the beginning of the current session (in blue)
- Background: Indicates an uptrend (60 > 223) with a green background and a downtrend (60 < 223) with a red background.
Instruments:
- EMA Daily: Shows daily averages on an intraday timeframe.
- EMA levels 1h - 30m: Shows the levels of the 1g-30m EMAs.
- EMA Levels Highest TF: Provides the option to select additional EMA levels from the major timeframes, customizable via the drop-down menu.
- "Hammer Detector: Marks hammers with a green triangle and inverted hammers with a red triangle on the chart
- "Azzeramento" signal on TF > 30m: Indicates a small candlestick on the EMA after a dump.
- "No Fomo" signal on TF < 30m: Indicates a hyperextended movement.
Trigger Points:
- Today's highs and lows: Shows the opening price of the day's candlestick, along with the day's highs and lows (high in purple, low in red, open in green).
- Yesterday's highs and lows: Displays the opening price of the daily candlestick, along with the previous day's highs and lows (high in yellow, low in red).
You can customize the colors in "Settings" > "Style".
It is best used with the Scalping The Bull indicator on the main panel.
Credits:
@tumiza999: for tests and suggestions.
Thanks for your attention, happy to support the TradingView community.
Volatility Adjusted Weighted DEMA [BackQuant]Volatility Adjusted Weighted DEMA
The Volatility Adjusted Weighted Double Exponential Moving Average (VAWDEMA) by BackQuant is a sophisticated technical analysis tool designed for traders seeking to integrate volatility into their moving average calculations. This innovative indicator adjusts the weighting of the Double Exponential Moving Average (DEMA) according to recent volatility levels, offering a more dynamic and responsive measure of market trends.
Primarily, the single Moving average is very noisy, but can be used in the context of strategy development, where as the crossover, is best used in the context of defining a trading zone/ macro uptrend on higher timeframes.
Why Volatility Adjustment is Beneficial
Volatility is a fundamental aspect of financial markets, reflecting the intensity of price changes. A volatility adjustment in moving averages is beneficial because it allows the indicator to adapt more quickly during periods of high volatility, providing signals that are more aligned with the current market conditions. This makes the VAWDEMA a versatile tool for identifying trend strength and potential reversal points in more volatile markets.
Understanding DEMA and Its Advantages
DEMA is an indicator that aims to reduce the lag associated with traditional moving averages by applying a double smoothing process. The primary benefit of DEMA is its sensitivity and quicker response to price changes, making it an excellent tool for trend following and momentum trading. Incorporating DEMA into your analysis can help capture trends earlier than with simple moving averages.
The Power of Combining Volatility Adjustment with DEMA
By adjusting the weight of the DEMA based on volatility, the VAWDEMA becomes a powerful hybrid indicator. This combination leverages the quick responsiveness of DEMA while dynamically adjusting its sensitivity based on current market volatility. This results in a moving average that is both swift and adaptive, capable of providing more relevant signals for entering and exiting trades.
Core Logic Behind VAWDEMA
The core logic of the VAWDEMA involves calculating the DEMA for a specified period and then adjusting its weighting based on a volatility measure, such as the average true range (ATR) or standard deviation of price changes. This results in a weighted DEMA that reflects both the direction and the volatility of the market, offering insights into potential trend continuations or reversals.
Utilizing the Crossover in a Trading System
The VAWDEMA crossover occurs when two VAWDEMAs of different lengths cross, signaling potential bullish or bearish market conditions. In a trading system, a crossover can be used as a trigger for entry or exit points:
Bullish Signal: When a shorter-period VAWDEMA crosses above a longer-period VAWDEMA, it may indicate an uptrend, suggesting a potential entry point for a long position.
Bearish Signal: Conversely, when a shorter-period VAWDEMA crosses below a longer-period VAWDEMA, it might signal a downtrend, indicating a possible exit point or a short entry.
Incorporating VAWDEMA crossovers into a trading strategy can enhance decision-making by providing timely and adaptive signals that account for both trend direction and market volatility. Traders should combine these signals with other forms of analysis and risk management techniques to develop a well-rounded trading strategy.
Alert Conditions For Trading
alertcondition(vwdema>vwdema , title="VWDEMA Long", message="VWDEMA Long - {{ticker}} - {{interval}}")
alertcondition(vwdema
Kalman Hull Supertrend [BackQuant]Kalman Hull Supertrend
At its core, this indicator uses a Kalman filter of price, put inside of a hull moving average function (replacing the weighted moving averages) and then using that as a price source for the supertrend instead of the normal hl2 (high+low/2).
Therefore, making it more adaptive to price and also sensitive to recent price action.
PLEASE Read the following, knowing what an indicator does at its core before adding it into a system is pivotal. The core concepts can allow you to include it in a logical and sound manner.
1. What is a Kalman Filter
The Kalman Filter is an algorithm renowned for its efficiency in estimating the states of a linear dynamic system amidst noisy data. It excels in real-time data processing, making it indispensable in fields requiring precise and adaptive filtering, such as aerospace, robotics, and financial market analysis. By leveraging its predictive capabilities, traders can significantly enhance their market analysis, particularly in estimating price movements more accurately.
If you would like this on its own, with a more in-depth description please see our Kalman Price Filter.
2. Hull Moving Average (HMA) and Its Core Calculation
The Hull Moving Average (HMA) improves on traditional moving averages by combining the Weighted Moving Average's (WMA) smoothness and reduced lag. Its core calculation involves taking the WMA of the data set and doubling it, then subtracting the WMA of the full period, followed by applying another WMA on the result over the square root of the period's length. This methodology yields a smoother and more responsive moving average, particularly useful for identifying market trends more rapidly.
3. Combining Kalman Filter with HMA
The innovative combination of the Kalman Filter with the Hull Moving Average (KHMA) offers a unique approach to smoothing price data. By applying the Kalman Filter to the price source before its incorporation into the HMA formula, we enhance the adaptiveness and responsiveness of the moving average. This adaptive smoothing method reduces noise more effectively and adjusts more swiftly to price changes, providing traders with clearer signals for market entries or exits.
The calculation is like so:
KHMA(_src, _length) =>
f_kalman(2 * f_kalman(_src, _length / 2) - f_kalman(_src, _length), math.round(math.sqrt(_length)))
4. Integration with Supertrend
Incorporating this adaptive price smoothing technique into the Supertrend indicator further enhances its efficiency. The Supertrend, known for its proficiency in identifying the prevailing market trend and providing clear buy or sell signals, becomes even more powerful with an adaptive price source. This integration allows the Supertrend to adjust more dynamically to market changes, offering traders more accurate and timely trading signals.
5. Application in a Trading System
In a trading system, the Kalman Hull Supertrend indicator can serve as a critical component for identifying market trends and generating signals for potential entry and exit points. Its adaptiveness and sensitivity to price changes make it particularly useful for traders looking to minimize lag in signal generation and improve the accuracy of their market trend analysis. Whether used as a standalone tool or in conjunction with other indicators, its dynamic nature can significantly enhance trading strategies.
6. Core Calculations and Benefits
The core of this indicator lies in its sophisticated filtering and averaging techniques, starting with the Kalman Filter's predictive adjustments, followed by the adaptive smoothing of the Hull Moving Average, and culminating in the trend-detecting capabilities of the Supertrend. This multi-layered approach not only reduces market noise but also adapts to market volatility more effectively. Benefits include improved signal accuracy, reduced lag, and the ability to discern trend changes more promptly, offering traders a competitive edge.
Thus following all of the key points here are some sample backtests on the 1D Chart
Disclaimer: Backtests are based off past results, and are not indicative of the future.
INDEX:BTCUSD
INDEX:ETHUSD
BINANCE:SOLUSD
EMA 20/50/100/200 PricesDescription:
Introducing the EMA Indicator with Dynamic Labels, a unique addition to the TradingView Public Library. This innovative script enhances trend analysis and decision-making by overlaying four Exponential Moving Averages (EMAs) – 20, 50, 100, and 200 periods – on your chart, each with a distinct color for quick identification.
What sets this script apart?
Unlike standard EMA indicators, this script includes dynamic labels that display the current price level of each EMA at the latest price bar. This feature provides an instant snapshot of market sentiment, offering insights into potential dynamic support or resistance levels.
Key Features:
Customizable EMA Periods: Tailor the EMA periods according to your trading strategy, allowing for flexibility across different timeframes and assets.
Adaptive Label Sizes: A unique function adjusts label sizes based on user input, ensuring optimal readability across various display settings.
Color-Coded EMAs: Quickly differentiate between the EMAs with pre-defined colors, enhancing visual clarity and trend recognition.
How to Use:
Trend Analysis: Use the EMAs to identify the overall market trend. When shorter EMAs are above longer ones, it suggests a bullish trend, and vice versa.
Trade Entries and Exits: Look for crossovers of the EMAs as potential entry or exit signals. Dynamic labels will help you pinpoint the exact levels.
Customization: Adjust the EMA periods and label sizes under the indicator settings to match your trading style and preferences.
Underlying Concepts:
This script utilizes the classic EMA calculation but innovates by integrating dynamic, real-time labels and customizable periods. The choice of four different periods allows for a nuanced analysis of trend strength and direction, catering to both short-term traders and long-term investors.
Originality and Contribution:
The "Advanced EMA Indicator with Dynamic Labels" is original in its approach to providing real-time, actionable data through dynamic labels. It caters to the community's need for more interactive and informative indicators that go beyond basic trend analysis.
Conclusion:
Whether you're a novice trader seeking to understand market trends or an experienced investor looking for nuanced analysis tools, this script offers valuable insights and flexibility. It stands as a testament to the power of Pine Script in creating practical, user-centric trading tools.
Pin Bar PrompterRecognition principle of the Pin Bar
1. The K-Chart has a long shadow line
2. The length of the long shadow line must be greater than 2/3 of the length of the body
3. The shadow line above the body is bearish Pin Bar; the shadow line below the body is bullish Pin Bar.
Pin Bar is just a K-Chart pattern and is only used as a basis for judgment and not as investment advice.
Pin Bar识别的逻辑
1.K线有长影线
2.长影线的长度大于整根K长度的2/3
3.影线在实体上方为:看跌pinbar;影线在实体下方为:看涨pinbar
Pin Bar只是一种K线形态,仅作为一种判断依据,不作为投资建议
Forecast: PastFluxDelta PredictionThe theory is that time periods and the conditions during these periods repeat themselves. Especially if it is the same day of the week in the past, there is a high probability that price fluctuations will roughly repeat themselves.
Eternal return (or eternal recurrence) is a philosophical concept which states that time repeats itself in an infinite loop, and that exactly the same events will continue to occur in exactly the same way, over and over again, for eternity.
History does repeat itself.
The stock market is a manifest example.
Chief market strategist at Miller Tabak + Co. Matt Maley pointed out the strong resemblance between the stock market recently and that in the past.
Various scientific studies and articles show that there could be something to this theory
Most of the investors are ignoring the parallels between stocks today and "heady" years 1929, 1999 and 2007…
Post Labor Day sees investors returning to the S&P 500 near all-time highs and some dark economic shadows lurking …
So how should we regard these inescapable results?
Nietzsche said we should embrace them, accept them, and love them. Once they stop, expect them to start again.
But remember that the future is fundamentally uncertain and that past results are by no means a guarantee of future performance.
Based on this, this indicator uses historical trading data from a year, a week or a day ago and compares price fluctuations in the past with current conditions.
"Bars to predict" can be used to indicate how far into the future the indicator is looking.
"Amount of bars to show" determines how many bars are generally displayed. A high value allows you to see how accurate the method was in the past.
Time Matrix TableICT stresses time and liquidity levels in his teachings. This table helps to easily locate these key Time-based price levels. You can use these levels to determine your directional bias and to help generate your narrative for where the market is going.
This indicator creates a table that gives you the price for the following liquidity levels:
PDO - Previous Day Open
PDH - Previous Day High
PDL - Previous Day Low
PDC - Previous Day Close
PDEQ - Equilibrium of the previous day's range. (Calculated by math.abs(((pdh-pdl)/2)+pdl))
PWH - Previous Week High
PWL - Previous Week Low
PDH2 - Two Days Back High
PDL2 - Two Days Back Low
PDH3 - Three Days Back High
PDL3 - Three Days Back Low
And gives you the opening price for the following times:
Daily Open - 6:00pm open for current session
1:30 AM
3:00 AM
4:00 AM
Midnight Open
6:00 AM
7:30 AM
8:30 AM
NY Open
10:00 AM
12:00 PM
NY PM - 1:30pm
2:00 PM
The levels are sorted descending in price in the table, with the background colored based on their relation to price. The prices are also plotted on the chart based on the range you specify in relation to the current price. These lines are also colored based on their relation to price.
This indicator does not give you anything but the price at a specific time, you must determine your own bias and narrative based on the levels that are given.
Tick Volume Direction IndicatorTick Volume Direction Indicator
This indicator captures:
• tick volume
• tick direction
The settings are as follows:
• volume or base currency value selection.
• label distance (away from the low of the candle).
• Tick volume - on/off switch for tick volume.
• label size.
• Up tick move color.
• tick move absorbed - when the tick doesn't change position.
• Down tick move.
On the first initial load, it will have the existing volume data as "?" as tradingview doesn't have a history of each tick.
Be aware, any settings change you make will refresh the tick data from start.
This indicator is one of the best real-time ways of seeing buying and selling pressure.
SizeblockPrice change indicator in the form of diagonal rows.
The calculation is based on the percentage or tick deviation of the price movement (indicated in the "Deviation" parameter), which is displayed on the chart in the form of rows.
The row consists of the base middle line, upper and lower limits:
The middle line is the basis for the upper and lower limits of the current row.
The upper and lower limits are deviations from the base middle line of the current row.
The base middle line is equal to the upper or lower limits of the previous row (if the price changes rapidly in one time interval, then the base middle line of the current row is greater than the upper limit of the previous row or less than the lower limit of the previous row by an equal number of deviations depending on the direction of price movement). At the beginning of the calculation, the base middle line is equal to the initial value of the first row.
The "Quantity" parameter determines the deviation for the upper or lower limits depending on the direction of the price movement, and the "U-turn" parameter determines the deviation for changing the direction of the price movement.
The rule for constructing a new row:
The "Source" parameter accepts, depending on the choice, the price of high, low values or the closing price from the time interval of the chart.
When the price reaches the upper or lower limits of the row and goes beyond them, a new row is formed with the same parameters for deviation of the upper and lower limits from the base middle line, depending on the direction of price movement.
By adjusting certain deviations, you can clearly see the local trend and reversal points on the chart.
A useful tool for tracking price direction.
Thanks for your attention!